/*
 * Copyright 2010-2012 Susanta Tewari. <freecode4susant@users.sourceforge.net>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package test.coalescent.data;

import coalescent.data.K69Data;
import org.javatuples.Pair;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Susanta Tewari
 * @version version
 * @history Created on 12/6/13.
 * @since since
 */
public class RealDataSets {

    private static final Map<String, K69Data> k69_ds   = new HashMap<>();
    private static final Map<String, Double> k69_probs = new HashMap<>();

    /** Real Data Sets */
    static {


        // gt94: theta = 4.8
        k69_ds.put("gt94", new K69Data(4.8, new String[] {
            "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13", "a14"
        }, new String[] {

            "100101000000010000", "100101000100010000", "010000000000000001", "001000001000000000",
            "000101000000010000", "000111000000010000", "000000000011000001", "000000000011100001",
            "000000000000000111", "000000000000000101", "000000000000000000", "000000000000000001",
            "000000010000000000", "000000100000001000"

        }, new String[] {
            "2", "2", "1", "3", "19", "1", "1", "1", "4", "8", "5", "4", "3", "1"
        }));
    }

    static {
        k69_probs.put("gt94", 8.7096E-20);    // theta = 4.8
    }

    /**
     * @return GT94 real data for theta (4.8)
     */
    public static Pair<K69Data, Double> of_GT94() {

        final String dataCode = "gt94";

        return new Pair<>(k69_ds.get(dataCode), k69_probs.get(dataCode));
    }
}
